The present invention relates generally to software and hardware mechanisms which provide access to computer memories. More particularly, the present invention relates to apparatus, systems, and methods which are used to control write operation access to various types of memories, including non-volatile memories.
As the television (TV) and the personal computer (PC) continue to converge, combining capabilities and becoming part of a single, integrated appliance, digital television broadcast technologies have become more prevalent, permeating business, education, and home entertainment environments. At the same time, high-speed networks continue to mature and video technology advances, such that digital video applications provide greater interactivity and personalization for individual users.
Such applications include interactive video, real-time feeds, and digital video broadcasting, usually a streaming digital video technology. To produce such applications, the video content is initially recorded in a digital format, or in an analog format, and then converted to a digital format. After being stored on a computer, the content can then be requested for transmission to another device or computer. The computer streaming the stored video content is called the server, while the device that receives and displays the streamed video data is called the client.
Several manufacturers are currently involved in the design and manufacture of xe2x80x9cset-top clientsxe2x80x9d, which are client devices designed to be placed on top of a TV set, and which enable consumers to access streaming digital video content, among other data, without using a separate computer. Streamed digital video has two major advantages over downloaded digital video: viewing can begin almost immediately, rather than waiting until the entire video data file is delivered to the client; and little storage space is needed on the client, since only that portion of the file currently being viewed must be stored (along with, perhaps, a small buffer to enable error-recovery over an unreliable network). However, these advantages also impose increased reliability requirements on the performance of a set-top client. While consumers may tolerate small aberrations in the behavior of their personal computers, they are often unwilling to accommodate any type of display errors in televised content from what may be viewed as an appliance, especially when the content is displayed in real time, and billed accordingly. Such consumers are used to the reliability of the conventional TV sets and Digital Video Disk (DVD) players; they expect set-top clients, as a xe2x80x9cblack boxxe2x80x9d, to behave in a similar error-free fashion. In other words, most consumers believe that turning on the power to a set-top client device should provide perfect operation, including flawless delivery of streamed digital video data.
Unfortunately, all current set-top client designs involve the use of processors, memory, power supplies, and other components commonly used in conventional computers. This being the case, power glitches and power failures can lead to corrupted memory, which in turn leads to failures in set-top client power-up performance. Since set-top clients are part of a computer network (communicating with a server), software virus activity may also act to corrupt the memory in the set-top client.
To overcome these problems, some designers have included non-volatile memory, such as flash memory, in their set-top client designs. The non-volatile memory is used to contain a boot loader and some type of Recovery Operating System (ROS) to aid in recovery from major operating system software corruption. Some manufacturers of flash memories also provide for register control of block write protection for pre-assigned areas, such as those where the boot loader and ROS reside. Thus, even if the regular operating system (i.e., the Client Operating System or COS) in the flash memory is corrupted due to a power outage or hacker activity, the set-top client device can still boot properly at the next power-up cycle, assuming that block write protection operates so that the boot loader and ROS are still intact.
Unfortunately, the advantage of semi-permanent block write protection (which allows a selected series of software commands to write over the boot loader and ROS areas when upgrades are desired, for example) comes at the cost of the continued possibility for corruption. Even though some flash memory devices include a xe2x80x9clock-downxe2x80x9d command which requires a second level of register access for un-locking protected blocks of memory, the lock-down mode is cleared whenever the memory device is reset or powered-down. Therefore, even with the extended block protection modes offered by newer flash memory devices, it is still possible for hackers to access the known (published) enabling register locations in the flash memory so as to turn off block protection and change the content of the boot loader and ROS.
Thus, there is a need in the art for apparatus, systems, and methods which can be easily applied to control access to protected memory areas such that simply modifying the content of one or two registers within the same memory device will not act to remove the protection. For increased security, such apparatus, systems, and methods should provide a mechanism to control access to the protected memory area, such that software instructions located in the protected area (such as the ROS) can authorize writing to the protected area.